Articulated chains are commonly employed in computer animation systems, such as the SOFTIMAGE.vertline.3D product sold by the assignee of the present invention, to model a variety of objects. In particular, articulated chains are often used to produce animation models of human beings and other living organisms with articulated bodies and limbs.
As described in "Advanced Animation and Rendering Techniques, Theory and Practice", by Alan Watt and Mark Watt, 1992, ACM Press, the contents of which are incorporated herein by reference, an articulated chain comprises a chain root, one or more joints separated by fixed length limbs and an end effector. Each joint in an articulated chain can have one or more degrees of freedom and can have defined ranges of movement it can make.
For example, an articulated chain defined to represent a human arm can have a joint defined to represent the shoulder and another joint defined to represent the elbow. The shoulder joint can be defined with three degrees of freedom in rotation and can be limited to prevent movement of the arm to a position behind the modelled human's back. The elbow joint can be defined with two degrees of freedom in rotation and can be constrained to limit the angle of the joint to angles between about ten degrees (representing the position at which the forearm of the model will be adjacent to the upper arm) and about one hundred eighty degrees (representing a straight arm).
Once an articulated chain has been defined, it is animated by an animation engine using, most commonly, inverse kinematics (IK). With IK, the chain is animated by indicating a desired final position or "goal" for the end effector of the chain. The IK animation engine will then calculate the position and orientation of each limb of the articulated chain so that the end effector reaches the desired goal. The set of positions and orientations for all of the limbs of a chain which are determined by the IK animation engine is called a "solution".
In most cases, more than one solution exists for any given goal. Two or more given solutions can have different "shapes", as defined by the positions and orientations of limbs. On the other hand, using a solution with a given shape, an infinite number of other solutions can be obtained by rotating the whole articulated chain around the axis going through the root and the end effector.
While inverse kinematics is one of the more useful techniques for animating articulated chains, it does suffer from some disadvantages. A commonly known disadvantage is the inability of the IK animation engine to choose the "correct" solution, or the solution that the animator desires, from amongst the many existing solutions. A co-pending U.S. application Ser. No. 08/691,340 to the present inventor and Rejean Gagne and assigned to the assignee of the present invention, teaches a system and method for performing IK on articulated chains which provides additional information, in the form of constraints, which are employed by the IK animation engine to control the articulated chain. The contents of this co-pending application are incorporated herein by reference.
While the additional constraints provided by the above-mentioned co-pending U.S. application are useful to the IK animation engine, it is generally time consuming and/or tedious for an animator to define such constraints for each desired goal for the end effector in space. Further, if the end effector has to reach the same goal many times during a desired motion sequence, then the animator will also have to reposition those constraints each time in order to get the desired solution for the articulated chain.
It is therefore desired to have a system and/or method of obtaining correct solutions of articulated chains in a simple, convenient and intuitive manner.